﻿using UnityEngine;
using System.Collections;

public class CodexScene : MonoBehaviour
{
	// Properties

	[SerializeField]
	TextList			m_codexList;
	[SerializeField]
	TextView			m_textView;
	[SerializeField]
	TextMesh			m_securityInfo;


	// Members

	CodexManager.Entry [] m_codexEntries;


	void Awake()
	{
		m_codexList.Selected	+= OnTextSelected;				// 이벤트 연결

		//Random.seed				= System.DateTime.Now.Millisecond;

		CodexData.SetupData();

		m_codexEntries			= CodexManager.MakeCodexEntryList();	// 리스트 세팅
		int count				= m_codexEntries.Length;
		string [] strList		= new string[count];
		for(int i = 0; i < count; i++)
		{
			strList[i]			= m_codexEntries[i].titleToShow;
		}
		m_codexList.SetList(strList);

		string fmtText			= "현재 보안 등급 : {0}\n보안 포인트    : {1}";
		if(CodexManager.masterPass)
			fmtText				+= "\nMASTERPASS MODE";
		m_securityInfo.text		= string.Format(fmtText, CodexManager.securityLevel, CodexManager.codexPoint);

		//int	scpNum				= Font.Equals;
	}

	void OnTextSelected(int index)
	{
		Codex codex				= CodexManager.GetCodex(m_codexEntries[index].index);

		bool secLevelOK			= codex.securityLevel <= CodexManager.securityLevel;
		bool masterPassOK		= CodexManager.masterPass || !codex.needMasterPass;
		bool accessOK			= secLevelOK && masterPassOK;

		m_textView.color		= accessOK? Color.white : Color.red;	// 액세스 가능 여부에 따라 텍스트 색상 변경

		string text				= "";
		text					+= string.Format(" * 보안 등급 {0} 문서\n", codex.securityLevel);
		if(!masterPassOK)												// 마스터 패스워드가 필요한 경우엔 메세지 추가 표시
		{
			text				+= " * 특수 보안 문서 : 보안 등급 이외에 추가로 마스터 패스워드가 필요합니다.\n";
		}

		text					+= "\n" + (accessOK? codex.text : "(열람 불가)");	// 액세스가 가능할 때만 본문 내용 추가

		text	= text.Replace("[loop]", (m_codexEntries[index].loopCount - 1).ToString());			// 루프 표시

		m_textView.SetText(text);
	}

	void Update()
	{
		if(Input.GetKeyDown(KeyCode.Escape))			// ESC는 메인메뉴로
		{
			Application.LoadLevel("IntroScene");
		}
	}
}
